from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能
from typing import Dict, List, Union
from core.equipment.property import 武器MP系数, 武器冷却惩罚


class 主动技能(主动技能):
    # todo
    def MP消耗(self, **argv):
        # 武器类型 输出类型 额外CDR 手搓收益 恢复=True
        武器类型 = argv.get('武器类型', '')
        输出类型 = argv.get('输出类型', '')
        额外倍率 = argv.get('额外倍率', 1.0)
        if self.MP == None:
            self.MP = [0, 0]
        if self.等级上限 > 1:
            mpnum = int(self.MP[0] + (self.等级 - 1) *
                        (self.MP[1] - self.MP[0]) / (self.等级上限 - 1))
        else:
            mpnum = self.MP[0]
        return round(mpnum * 武器MP系数(武器类型, 输出类型) * 额外倍率, 0)

    def 等效CD2(self, **argv):
        return super().等效CD(**argv)


class 附灵主动(主动技能):
    形态 = ["续航", "附灵"]

    # 是否计算
    count0 = 1
    data_f0 = []
    hit_f0 = 1
    power_f0 = 1
    count_f0 = 1
    CD2 = 0

    输出时间 = 40

    def 基础百分比(self, 类型, 等级):
        if 类型 == '直伤':
            name = ''
        else:
            name = 类型
        百分比 = 0.0
        for i in range(0, 10):
            data = getattr(self, '{}data{}'.format(name, i), [])
            if 等级 < len(data) and 等级 > 0:
                hit = getattr(self, '{}hit{}'.format(name, i), 1)
                if getattr(self, '间隔{}'.format(i), 0) > 0:
                    hit *= self.输出时间 / getattr(self, '间隔{}'.format(i))
                power = getattr(self, '{}power{}'.format(name, i), 1)
                count = getattr(self, '{}count{}'.format(name, i), 1)
                百分比 += data[等级] * hit * power * count
        for i in range(0, 5):
            data = getattr(self, '{}data_f{}'.format(name, i), [])
            if 等级 < len(data) and 等级 > 0:
                hit = getattr(self, '{}hit_f{}'.format(name, i), 1)
                power = getattr(self, '{}power_f{}'.format(name, i), 1)
                count = getattr(self, '{}count_f{}'.format(name, i), 1)
                百分比 += data[等级] * hit * power * count
        return 百分比*self.国服特色

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "续航":
            for i in range(0, 10):
                setattr(self, 'count{}'.format(i), 1)
            for i in range(0, 5):
                setattr(self, 'count_f{}'.format(i), 0)
        if 形态 == "附灵":
            for i in range(0, 10):
                setattr(self, 'count{}'.format(i), 0)
            for i in range(0, 5):
                setattr(self, 'count_f{}'.format(i), 1)

    def 等效CD2(self, **argv):
        # 武器类型 输出类型 额外CDR 手搓收益 恢复
        武器类型 = argv.get('武器类型', '')
        输出类型 = argv.get('输出类型', '')
        额外CDR = argv.get('额外CDR', 1.0)
        # 手搓收益 = argv.get('手搓收益', 1.0)
        面板显示 = argv.get('面板显示', False)

        额外恢复 = argv.get('额外恢复', 0)

        cdr = self.手搓CD()

        return round(max(self.CD2 * self.CDR * 额外CDR / ((self.恢复+额外恢复) if not 面板显示 else 1) * (self.武器CD系数(武器类型, 输出类型) - (cdr if not 面板显示 else 0)), self.CD2 * 0.3, 1), 1)


class 技能0(主动技能):
    名称 = "鞭挞"
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 3
    等级精通 = 60
    CD = 1
    MP = [15, 154]
    无色消耗 = 0
    data0 = [0, 1125, 1309, 1487, 1666, 1846, 2024, 2205, 2383, 2567, 2746, 2925, 3104, 3283, 3463, 3642, 3822, 4003, 4184, 4363, 4541, 4720, 4899, 5080, 5259, 5441, 5622, 5801, 5979, 6158, 6337, 6518, 6697, 6879, 7057, 7239, 7418,
             7595, 7776, 7954, 8137, 8316, 8496, 8675, 8855, 9033, 9212, 9392, 9575, 9754, 9933, 10114, 10293, 10472, 10650, 10829, 11013, 11191, 11370, 11551, 11730, 11909, 12087, 12266, 12451, 12629, 12809, 12987, 13168, 13347, 13526]
    hit0 = 0
    data1 = [0, 185, 330, 476, 621, 768, 913, 1058, 1203, 1348, 1492, 1638, 1783, 1930, 2072, 2217, 2364, 2509, 2654, 2800, 2944, 3089, 3234, 3379, 3526, 3671, 3816, 3962, 4107, 4253, 4399, 4543, 4689, 4833, 4978, 5124,
             5269, 5412, 5558, 5703, 5849, 5995, 6141, 6285, 6430, 6575, 6720, 6865, 7011, 7157, 7303, 7448, 7593, 7738, 7882, 8027, 8173, 8318, 8465, 8610, 8753, 8899, 9044, 9189, 9335, 9480, 9624, 9771, 9914, 10061, 10206]
    hit1 = 1
    data2 = [0, 277, 496, 713, 930, 1151, 1368, 1586, 1803, 2021, 2238, 2458, 2675, 2892, 3109, 3326, 3545, 3762, 3980, 4199, 4416, 4635, 4852, 5071, 5288, 5507, 5724, 5941, 6161, 6378, 6596, 6813, 7031, 7248, 7465, 7686, 7903, 8120,
             8337, 8556, 8773, 8990, 9210, 9427, 9645, 9862, 10080, 10298, 10517, 10734, 10951, 11171, 11389, 11606, 11823, 12042, 12259, 12476, 12696, 12913, 13130, 13347, 13566, 13783, 14000, 14221, 14438, 14656, 14873, 15091, 15308]
    hit2 = 1
    TP成长 = 0.1
    TP上限 = 7

    国服特色 = max(data0[1], 1198)/data0[1]

    关联技能 = ['所有']
    非关联技能 = ['鞭挞', '精灵献祭', '束缚印记', '传说召唤：月蚀之影', '魔月·德拉里昂', '魔力印记']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return 1.045

    def 等效百分比(self, **argv):
        char = argv.get('char', {})
        if char.get_skill_by_name('绝对支配').等级 > 0:
            self.hit0 = 0
            self.hit1 = 1
            self.hit2 = 1
            self.CD = 3
        else:
            self.hit0 = 1
            self.hit1 = 0
            self.hit2 = 0
            self.CD = 1
        return super().等效百分比(**argv)


class 技能1(被动技能):
    名称 = '召唤兽强化'
    所在等级 = 15
    等级上限 = 30
    基础等级 = 20
    关联技能 = ['契约召唤：弗利特', '契约召唤：桑德尔', '契约召唤：袄索', '精灵召唤：亡魂默克尔', '精灵召唤：极光格雷林', '精灵召唤：火焰赫瑞克', '精灵召唤：冰影阿奎利斯', '契约召唤：路易丝', '精灵召唤：伊伽贝拉',
            '契约召唤：牛头王库鲁塔', '契约召唤：征服者卡西利亚斯', '咒令：愤怒咆哮', '传说召唤：逆月者拉莫斯', '咒令：逆月之蚀', '必杀剑·千鬼杀', '至高精灵王', '传说召唤：月蚀之影', '狂化黑月', '魔月·德拉里昂']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00+0.02*self.等级, 3)


class 技能2(被动技能):
    名称 = '心灵感应'
    所在等级 = 15
    等级上限 = 16
    基础等级 = 6

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.03+0.02*self.等级, 3)


class 技能3(主动技能):
    名称 = "精灵献祭"
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    CD = 20
    MP = [200, 700]
    无色消耗 = 0
    data0 = [0, 2439, 2684, 2935, 3181, 3427, 3676, 3924, 4169, 4418, 4665, 4910, 5161, 5407, 5653, 5902, 6148, 6396, 6644, 6891, 7136, 7386, 7636, 7878, 8129, 8375, 8623, 8872, 9116, 9366, 9614, 9860, 10109, 10354, 10601, 10851, 11098,
             11342, 11591, 11839, 12085, 12335, 12580, 12827, 13079, 13324, 13570, 13819, 14067, 14312, 14561, 14809, 15053, 15304, 15549, 15796, 16045, 16290, 16539, 16787, 17033, 17282, 17529, 17775, 18025, 18272, 18518, 18768, 19015, 19261, 19509]
    hit0 = 1
    data1 = [0, 482, 534, 577, 627, 676, 726, 775, 824, 874, 925, 971, 1023, 1069, 1121, 1164, 1214, 1264, 1313, 1363, 1410, 1463, 1510, 1559, 1608, 1657, 1705, 1753, 1801, 1853, 1900, 1950, 1998, 2049, 2097, 2148,
             2195, 2244, 2292, 2339, 2390, 2439, 2487, 2536, 2585, 2634, 2684, 2733, 2783, 2831, 2883, 2926, 2978, 3026, 3075, 3124, 3173, 3221, 3274, 3321, 3372, 3418, 3465, 3514, 3563, 3612, 3661, 3711, 3760, 3812, 3861]
    hit1 = 1
    data2 = [0, 2462, 2711, 2958, 3208, 3458, 3709, 3957, 4208, 4457, 4708, 4956, 5208, 5457, 5707, 5956, 6205, 6456, 6707, 6955, 7200, 7450, 7699, 7949, 8199, 8450, 8699, 8948, 9199, 9448, 9696, 9948, 10198, 10448, 10695, 10946, 11195,
             11446, 11695, 11945, 12195, 12445, 12693, 12945, 13194, 13445, 13692, 13941, 14192, 14444, 14692, 14941, 15187, 15437, 15686, 15936, 16187, 16436, 16686, 16936, 17186, 17434, 17685, 17936, 18185, 18431, 18682, 18931, 19183, 19431, 19681]
    hit2 = 1
    data3 = [0, 2439, 2684, 2935, 3181, 3427, 3676, 3924, 4169, 4418, 4665, 4910, 5161, 5407, 5653, 5902, 6148, 6396, 6644, 6891, 7136, 7386, 7636, 7878, 8129, 8375, 8623, 8872, 9116, 9366, 9614, 9860, 10109, 10354, 10601, 10851, 11098,
             11342, 11591, 11839, 12085, 12335, 12580, 12827, 13079, 13324, 13570, 13819, 14067, 14312, 14561, 14809, 15053, 15304, 15549, 15796, 16045, 16290, 16539, 16787, 17033, 17282, 17529, 17775, 18025, 18272, 18518, 18768, 19015, 19261, 19509]
    hit3 = 1
    TP成长 = 0.1
    TP上限 = 7


class 技能4(附灵主动):
    名称 = '契约召唤：弗利特'
    所在等级 = 20
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 10
    # 召唤CD
    CD2 = 10
    TP上限 = 7
    TP成长 = 0.1
    MP = [90, 881]

    # 撕咬,CD1秒
    data0 = [0, 326, 359, 392, 425, 458, 491, 524, 558, 590, 623, 657, 689, 722, 756, 788, 821, 855, 888, 920, 954, 987, 1019, 1053, 1086, 1118, 1152, 1185, 1218, 1251, 1284, 1317, 1349, 1383, 1416, 1449, 1482,
             1515, 1547, 1581, 1614, 1648, 1680, 1713, 1747, 1779, 1812, 1846, 1879, 1911, 1945, 1978, 2010, 2043, 2077, 2109, 2143, 2176, 2208, 2241, 2275, 2308, 2341, 2374, 2407, 2439, 2473, 2506, 2538, 2572, 2605]
    # 攻击间隔 20s打8.25次
    间隔0 = 20/8.25
    hit0 = 1
    # 火焰球,CD1秒
    data1 = [0, 186, 206, 224, 243, 262, 281, 299, 319, 338, 356, 376, 394, 413, 432, 451, 469, 489, 507, 526, 546, 564, 583, 602, 621, 639, 659, 677, 696, 715, 734, 752, 771, 791, 809, 829, 847, 866,
             884, 904, 922, 942, 960, 979, 999, 1017, 1036, 1055, 1074, 1092, 1112, 1130, 1149, 1167, 1187, 1206, 1225, 1244, 1262, 1281, 1300, 1319, 1338, 1357, 1375, 1394, 1414, 1432, 1451, 1470, 1489]
    # 攻击间隔 20s打16.25次
    间隔1 = 20/16.25
    hit1 = 1
    # 火焰龙息,CD2秒
    data2 = [0, 559, 615, 672, 729, 785, 842, 898, 955, 1012, 1068, 1125, 1182, 1238, 1295, 1351, 1408, 1465, 1521, 1578, 1635, 1691, 1748, 1804, 1861, 1918, 1974, 2031, 2088, 2144, 2201, 2257, 2313, 2371, 2426, 2484,
             2540, 2597, 2653, 2711, 2766, 2824, 2880, 2937, 2994, 3050, 3107, 3164, 3220, 3276, 3333, 3389, 3447, 3502, 3560, 3615, 3673, 3729, 3786, 3842, 3900, 3955, 4013, 4069, 4126, 4182, 4238, 4295, 4352, 4408, 4465]
    # 攻击间隔 20s打7次
    间隔2 = 20/7
    hit2 = 1
    # 龙威[附灵]
    data_f0 = [0, 405, 446, 488, 529, 570, 611, 652, 694, 734, 775, 817, 858, 898, 940, 981, 1023, 1063, 1104, 1146, 1187, 1227, 1269, 1310, 1351, 1392, 1433, 1475, 1516, 1556, 1598, 1639, 1679, 1721, 1762, 1803,
               1844, 1885, 1926, 1968, 2008, 2049, 2091, 2132, 2173, 2214, 2255, 2297, 2337, 2378, 2420, 2460, 2501, 2543, 2584, 2624, 2666, 2707, 2749, 2789, 2830, 2872, 2913, 2953, 2995, 3036, 3078, 3118, 3159, 3201, 3242]
    hit_f0 = 5


class 技能5(被动技能):
    名称 = '绝对支配'
    所在等级 = 25
    等级上限 = 1
    等级精通 = 1
    等级 = 1


class 技能6(附灵主动):
    名称 = '契约召唤：桑德尔'
    所在等级 = 25
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 12
    # 召唤CD
    CD2 = 10
    TP上限 = 7
    TP成长 = 0.1
    MP = [120, 965]
    MP2 = ["todo"]

    # 形态 = ['续航', '附灵']
    # 输出时间 = 0

    # 挥刀,CD1秒
    data0 = [0, 334, 369, 401, 436, 470, 504, 538, 572, 606, 639, 673, 707, 741, 775, 808, 842, 876, 910, 944, 978, 1011, 1045, 1079, 1113, 1147, 1182, 1215, 1249, 1283, 1317, 1351, 1384, 1418, 1452, 1486, 1520,
             1554, 1587, 1621, 1655, 1689, 1723, 1757, 1790, 1824, 1858, 1892, 1926, 1961, 1994, 2028, 2062, 2096, 2130, 2163, 2197, 2231, 2265, 2299, 2333, 2366, 2400, 2434, 2468, 2502, 2535, 2569, 2603, 2637, 2671]
    hit0 = 1
    # 攻击间隔 20s打12.970次(根据附灵占比拟合后)
    间隔0 = 20/12.970
    # 直刺,CD1.5秒
    data1 = [0, 467, 514, 561, 609, 656, 704, 751, 798, 846, 892, 940, 987, 1034, 1082, 1129, 1176, 1224, 1271, 1318, 1366, 1413, 1460, 1508, 1555, 1602, 1650, 1697, 1745, 1791, 1838, 1886, 1933, 1981, 2028, 2075,
             2123, 2170, 2217, 2265, 2312, 2359, 2407, 2454, 2501, 2549, 2595, 2642, 2690, 2737, 2785, 2832, 2879, 2927, 2974, 3021, 3069, 3116, 3164, 3211, 3258, 3306, 3353, 3400, 3448, 3494, 3541, 3589, 3636, 3683, 3731]
    hit1 = 1
    # 攻击间隔 20s打9次
    间隔1 = 20/9
    # 剑气[附灵]
    data_f0 = [0, 2638, 2905, 3173, 3440, 3708, 3976, 4244, 4510, 4779, 5046, 5314, 5580, 5849, 6117, 6385, 6652, 6919, 7188, 7455, 7723, 7989, 8258, 8525, 8793, 9060, 9328, 9595, 9864, 10130, 10398, 10666, 10934, 11201, 11469, 11736, 12004,
               12272, 12539, 12806, 13075, 13342, 13609, 13876, 14145, 14412, 14680, 14947, 15215, 15483, 15751, 16018, 16285, 16554, 16821, 17088, 17356, 17624, 17891, 18160, 18426, 18694, 18962, 19230, 19496, 19765, 20032, 20300, 20566, 20835, 21102]
    hit_f0 = 1


class 技能7(附灵主动):
    名称 = '精灵召唤：冰影阿奎利斯'
    所在等级 = 30
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 15
    # 召唤CD
    CD2 = 10
    TP上限 = 7
    TP成长 = 0.1
    MP = [168, 1411]
    MP2 = ["todo"]

    # 落冰,CD1秒
    data0 = [0, 33, 36, 39, 43, 46, 49, 52, 56, 59, 62, 65, 69, 72, 75, 79, 83, 86, 89, 93, 96, 99, 103, 106, 109, 112, 116, 119, 122, 125, 129, 132, 135, 139, 142, 145, 148,
             152, 155, 158, 161, 165, 168, 171, 175, 178, 181, 184, 188, 191, 194, 197, 201, 204, 207, 211, 214, 217, 220, 224, 227, 230, 233, 237, 240, 243, 247, 250, 253, 256, 260]
    hit0 = 3
    # 攻击间隔 20s打14.984次(根据附灵占比拟合后)
    间隔0 = 20/14.984
    # 冰息,CD1.5秒
    data1 = [0, 292, 322, 351, 382, 411, 441, 470, 500, 529, 560, 589, 619, 648, 678, 707, 738, 767, 796, 826, 855, 885, 915, 945, 974, 1004, 1033, 1063, 1093, 1123, 1152, 1182, 1211, 1240, 1271, 1300, 1330,
             1359, 1389, 1418, 1448, 1478, 1508, 1537, 1567, 1596, 1626, 1656, 1686, 1715, 1745, 1774, 1803, 1834, 1863, 1893, 1922, 1952, 1981, 2012, 2041, 2071, 2100, 2130, 2159, 2190, 2219, 2249, 2278, 2307, 2337]
    hit1 = 1
    # 攻击间隔 20s打9次
    间隔1 = 20/9
    # 冰导弹,CD5秒
    data2 = [0, 325, 358, 391, 424, 457, 490, 523, 555, 588, 622, 655, 687, 720, 753, 786, 819, 852, 885, 918, 950, 984, 1017, 1050, 1082, 1115, 1148, 1182, 1214, 1247, 1280, 1312, 1345, 1379, 1412, 1444, 1477,
             1510, 1544, 1576, 1609, 1642, 1675, 1707, 1741, 1774, 1807, 1839, 1872, 1906, 1939, 1971, 2004, 2037, 2070, 2103, 2136, 2169, 2202, 2234, 2268, 2301, 2334, 2366, 2399, 2432, 2466, 2498, 2531, 2564, 2597]
    hit2 = 3
    # 攻击间隔 20s打4次
    间隔2 = 20/4
    # 七重冰导弹[附灵]
    data_f0 = [0, 433, 477, 521, 565, 609, 652, 697, 741, 784, 828, 872, 916, 960, 1004, 1047, 1092, 1136, 1179, 1223, 1268, 1311, 1355, 1399, 1443, 1487, 1531, 1574, 1619, 1663, 1706, 1750, 1794, 1838, 1882, 1926,
               1970, 2014, 2058, 2101, 2145, 2190, 2233, 2277, 2321, 2365, 2409, 2453, 2496, 2541, 2585, 2628, 2672, 2717, 2760, 2804, 2848, 2892, 2936, 2980, 3023, 3067, 3112, 3155, 3199, 3242, 3287, 3331, 3374, 3418, 3463]
    hit_f0 = 7


class 技能8(附灵主动):
    名称 = '精灵召唤：火焰赫瑞克'
    所在等级 = 30
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 15
    # 召唤CD
    CD2 = 10
    TP上限 = 7
    TP成长 = 0.1
    MP = [168, 1411]
    MP2 = ["todo"]

    # 火焰剑上斩,CD1秒
    data0 = [0, 253, 278, 305, 330, 356, 381, 407, 432, 459, 484, 510, 535, 561, 586, 612, 638, 663, 689, 714, 740, 765, 792, 817, 843, 868, 894, 919, 946, 971, 997, 1022, 1047, 1073, 1099, 1125, 1150, 1176,
             1201, 1227, 1253, 1279, 1304, 1330, 1355, 1381, 1406, 1433, 1458, 1484, 1509, 1535, 1560, 1586, 1612, 1637, 1663, 1688, 1714, 1740, 1766, 1791, 1817, 1842, 1868, 1894, 1920, 1945, 1971, 1996, 2021]
    hit0 = 1
    # 攻击间隔 20s打14.880次(根据附灵占比拟合后)
    间隔0 = 20/15.120
    # 火焰下重斩,CD1.5秒
    data1 = [0, 287, 317, 346, 375, 404, 434, 462, 491, 521, 549, 579, 608, 638, 666, 696, 725, 753, 783, 812, 841, 870, 900, 928, 958, 987, 1016, 1046, 1075, 1103, 1133, 1162, 1190, 1221, 1249, 1278, 1308,
             1337, 1365, 1396, 1424, 1452, 1483, 1511, 1541, 1570, 1599, 1628, 1658, 1686, 1716, 1745, 1773, 1803, 1832, 1861, 1890, 1920, 1949, 1978, 2007, 2037, 2065, 2094, 2124, 2152, 2182, 2211, 2240, 2269, 2299]
    hit1 = 1
    # 攻击间隔 20s打11次
    间隔1 = 20/11
    # 火焰下重斩剑气,CD1.5秒
    data2 = [0, 72, 80, 86, 94, 102, 108, 116, 123, 130, 138, 145, 152, 159, 167, 174, 181, 189, 195, 203, 211, 217, 225, 233, 239, 247, 254, 261, 269, 276, 283, 290, 298, 305, 312,
             320, 327, 334, 342, 348, 356, 364, 370, 378, 385, 392, 400, 407, 414, 422, 429, 436, 443, 451, 458, 465, 473, 479, 487, 495, 501, 509, 517, 523, 531, 538, 545, 553, 560, 567, 574]
    hit2 = 1
    间隔2 = 20/11
    # 火焰爆剑术第1击[附灵]
    data_f0 = [0, 606, 668, 729, 791, 853, 914, 975, 1037, 1099, 1160, 1222, 1283, 1344, 1406, 1468, 1529, 1591, 1652, 1713, 1776, 1837, 1898, 1960, 2021, 2082, 2145, 2206, 2267, 2329, 2390, 2452, 2514, 2575, 2636, 2698,
               2759, 2821, 2883, 2944, 3005, 3067, 3129, 3190, 3252, 3313, 3374, 3437, 3498, 3559, 3621, 3682, 3743, 3806, 3867, 3928, 3990, 4051, 4112, 4175, 4236, 4297, 4359, 4420, 4482, 4544, 4605, 4666, 4728, 4790, 4851]
    hit_f0 = 1
    # 火焰爆剑术第2击[附灵]
    data_f1 = [0, 910, 1001, 1094, 1187, 1279, 1372, 1463, 1555, 1648, 1741, 1832, 1925, 2017, 2109, 2201, 2294, 2386, 2479, 2571, 2662, 2755, 2848, 2940, 3032, 3124, 3216, 3309, 3402, 3493, 3586, 3678, 3770, 3862, 3955,
               4047, 4140, 4232, 4323, 4416, 4509, 4601, 4693, 4785, 4877, 4970, 5063, 5154, 5247, 5339, 5432, 5523, 5616, 5708, 5801, 5892, 5985, 6077, 6170, 6262, 6354, 6446, 6539, 6631, 6723, 6815, 6908, 7000, 7093, 7184, 7277]
    hit_f1 = 1
    # 火焰爆剑术第3击[附灵]
    data_f2 = [0, 1213, 1336, 1459, 1582, 1705, 1828, 1951, 2074, 2197, 2321, 2443, 2566, 2690, 2812, 2935, 3059, 3181, 3304, 3428, 3550, 3673, 3797, 3919, 4043, 4166, 4288, 4412, 4535, 4657, 4781, 4904, 5026, 5150, 5273,
               5396, 5519, 5642, 5765, 5888, 6011, 6134, 6257, 6381, 6503, 6626, 6750, 6872, 6995, 7119, 7242, 7364, 7488, 7611, 7734, 7857, 7980, 8103, 8226, 8349, 8472, 8595, 8719, 8841, 8964, 9088, 9210, 9333, 9457, 9579, 9702]
    hit_f2 = 1
    # 火焰爆剑术爆炸[附灵]
    data_f3 = [0, 100, 110, 120, 131, 141, 151, 161, 171, 181, 191, 202, 212, 222, 232, 242, 252, 262, 273, 283, 293, 304, 313, 323, 333, 344, 354, 364, 375, 384, 394, 404, 415, 425, 435,
               446, 455, 465, 476, 486, 496, 506, 517, 526, 536, 547, 557, 567, 578, 587, 597, 607, 618, 628, 638, 649, 658, 668, 678, 689, 699, 709, 720, 729, 739, 750, 760, 770, 780, 791, 800]
    hit_f3 = 3
    # 实际还有两段附灵伤害接在爆炸后，全等级固定值18


class 技能9(附灵主动):
    名称 = '精灵召唤：极光格雷林'
    所在等级 = 30
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 15
    # 召唤CD
    CD2 = 10
    TP上限 = 7
    TP成长 = 0.1
    MP = [168, 1411]
    MP2 = ["todo"]

    # 闪电,CD1秒
    data0 = [0, 49, 54, 59, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 114, 119, 124, 129, 136, 141, 146, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 199, 206, 211, 216, 221,
             226, 231, 235, 240, 245, 250, 255, 260, 265, 270, 276, 281, 286, 291, 296, 301, 306, 311, 316, 320, 325, 330, 335, 342, 347, 352, 356, 361, 366, 371, 376, 381, 386, 391, 396]
    hit0 = 2
    power0 = 2
    # 攻击间隔 20s打18(根据附灵占比拟合后)
    间隔0 = 20/18
    # 闪电5连发,CD2秒
    data1 = [0, 240, 265, 289, 314, 338, 362, 387, 411, 436, 460, 483, 509, 532, 558, 581, 607, 630, 654, 679, 703, 728, 752, 778, 801, 825, 850, 874, 899, 923, 946, 972, 996, 1021, 1045, 1070, 1094, 1117,
             1143, 1166, 1192, 1215, 1241, 1264, 1288, 1313, 1337, 1363, 1386, 1410, 1435, 1459, 1484, 1508, 1533, 1557, 1581, 1606, 1630, 1655, 1679, 1704, 1728, 1751, 1777, 1800, 1826, 1849, 1873, 1898, 1922]
    hit1 = 3
    power1 = 2
    # 攻击间隔 20s打8
    间隔1 = 20/9.5
    # 避雷针 持续9秒 CD18秒 增加闪电和五连发攻击力 3倍伤害 期望为2倍
    # 天雷[附灵]
    data_f0 = [0, 3026, 3333, 3640, 3947, 4254, 4561, 4868, 5175, 5482, 5789, 6096, 6403, 6710, 7017, 7324, 7631, 7938, 8245, 8552, 8860, 9167, 9473, 9781, 10088, 10394, 10702, 11009, 11315, 11623, 11930, 12236, 12544, 12851, 13157, 13465, 13772,
               14078, 14386, 14693, 14999, 15307, 15614, 15921, 16228, 16535, 16842, 17149, 17456, 17763, 18071, 18377, 18684, 18992, 19298, 19605, 19913, 20220, 20526, 20834, 21141, 21447, 21755, 22062, 22368, 22676, 22983, 23289, 23597, 23904, 24210]
    hit_f0 = 1


class 技能10(附灵主动):
    名称 = '精灵召唤：亡魂默克尔'
    所在等级 = 30
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 15
    # 召唤CD
    CD2 = 10
    TP上限 = 7
    TP成长 = 0.1
    MP = [168, 1411]
    MP2 = ["todo"]

    # 暗黑镰刀斩击,CD1秒
    data0 = [0, 152, 167, 182, 199, 214, 229, 244, 260, 275, 290, 305, 321, 336, 351, 367, 383, 398, 413, 429, 444, 459, 475, 490, 505, 520, 536, 552, 567, 583, 598, 613, 628, 644, 659, 674,
             690, 705, 720, 736, 752, 767, 782, 798, 813, 828, 843, 859, 874, 889, 904, 921, 936, 951, 967, 982, 997, 1012, 1028, 1043, 1058, 1074, 1089, 1105, 1120, 1136, 1151, 1166, 1182, 1197, 1212]
    hit0 = 1
    # 攻击间隔 20s打12.980次(根据附灵占比拟合后)
    间隔0 = 20/12.980
    # 暗黑镰刀下斩,CD1.5秒
    data1 = [0, 230, 253, 277, 300, 323, 347, 370, 393, 417, 440, 463, 487, 509, 532, 556, 579, 602, 626, 649, 672, 696, 719, 743, 766, 789, 813, 836, 859, 883, 906, 928, 952, 975, 998, 1022, 1045, 1068,
             1092, 1115, 1138, 1162, 1185, 1209, 1232, 1255, 1279, 1302, 1324, 1348, 1371, 1394, 1418, 1441, 1464, 1488, 1511, 1534, 1558, 1581, 1604, 1628, 1651, 1674, 1698, 1721, 1745, 1767, 1790, 1814, 1837]
    hit1 = 1
    # 攻击间隔 20s打13次
    间隔1 = 20/13
    # 暗黑雾,CD3秒,持续4秒
    data2 = [0, 144, 159, 173, 189, 203, 217, 232, 247, 261, 276, 290, 305, 320, 334, 349, 363, 377, 393, 407, 422, 436, 451, 466, 480, 494, 509, 524, 539, 553, 567, 583, 597, 612, 626, 640,
             656, 670, 684, 699, 714, 729, 743, 757, 772, 787, 801, 816, 830, 846, 860, 874, 889, 903, 918, 933, 947, 962, 976, 991, 1006, 1020, 1035, 1050, 1064, 1079, 1093, 1107, 1123, 1137, 1152]
    hit2 = 4
    间隔2 = 20/6
    # 黑雾[附灵]
    data_f0 = [0, 505, 556, 608, 659, 710, 762, 813, 864, 915, 967, 1018, 1069, 1120, 1171, 1222, 1273, 1324, 1376, 1427, 1478, 1530, 1581, 1632, 1683, 1735, 1786, 1837, 1889, 1940, 1991, 2042, 2093, 2145, 2195, 2246,
               2298, 2349, 2400, 2451, 2503, 2554, 2605, 2657, 2708, 2759, 2810, 2862, 2913, 2964, 3016, 3067, 3117, 3168, 3220, 3271, 3322, 3373, 3425, 3476, 3527, 3578, 3630, 3681, 3732, 3784, 3835, 3886, 3937, 3989, 4039]
    hit_f0 = 6


class 技能11(附灵主动):
    名称 = '契约召唤：袄索'
    备注 = '逆月'
    所在等级 = 30
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 15
    # 召唤CD
    CD2 = 10
    TP上限 = 7
    TP成长 = 0.1
    MP = [180, 1500]
    MP2 = ["todo"]

    # 穿刺[逆月],CD1秒
    data0 = [0, 118, 130, 142, 152, 164, 176, 188, 200, 212, 224, 236, 248, 260, 271, 283, 295, 307, 319, 331, 343, 355, 367, 378, 390, 402, 414, 426, 438, 450, 462, 474, 485, 497, 509,
             521, 533, 545, 556, 568, 580, 591, 603, 615, 627, 639, 651, 663, 675, 687, 698, 710, 722, 734, 746, 758, 770, 782, 794, 805, 817, 829, 841, 853, 865, 877, 889, 901, 911, 923, 935]
    hit0 = 1
    # 攻击间隔 20s打16次
    间隔0 = 20/16
    # 吐蚀[逆月],CD4秒
    data1 = [0, 296, 327, 356, 387, 416, 446, 476, 506, 536, 566, 597, 626, 657, 686, 717, 746, 776, 806, 836, 867, 896, 927, 956, 987, 1016, 1047, 1076, 1106, 1137, 1166, 1197, 1226, 1257, 1286, 1317, 1346,
             1376, 1407, 1436, 1467, 1496, 1527, 1556, 1587, 1616, 1647, 1677, 1706, 1737, 1766, 1797, 1826, 1857, 1886, 1917, 1947, 1977, 2007, 2036, 2067, 2096, 2127, 2156, 2187, 2216, 2247, 2277, 2307, 2337, 2366]
    hit1 = 6
    # 攻击间隔 20s打6次
    间隔1 = 20/5
    # 喷吐蚀块[附灵]
    data_f0 = [0, 4339, 4779, 5217, 5657, 6098, 6538, 6978, 7418, 7858, 8299, 8739, 9179, 9619, 10059, 10500, 10940, 11380, 11819, 12259, 12699, 13140, 13580, 14020, 14460, 14900, 15341, 15781, 16221, 16661, 17102, 17542, 17982, 18422, 18860, 19300,
               19741, 20181, 20621, 21061, 21501, 21942, 22382, 22822, 23262, 23702, 24143, 24583, 25023, 25462, 25902, 26342, 26783, 27223, 27663, 28103, 28543, 28984, 29424, 29864, 30304, 30744, 31185, 31625, 32065, 32503, 32943, 33384, 33824, 34264, 34704]
    hit_f0 = 1


class 技能12(附灵主动):
    名称 = '契约召唤：路易丝'
    所在等级 = 35
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 20
    # 召唤CD
    CD2 = 10
    TP上限 = 5
    TP成长 = 0.1
    MP = [300, 2520]
    MP2 = ["todo"]

    无色消耗 = 1

    # 杖攻击,CD1秒
    data0 = [0, 232, 255, 279, 301, 325, 349, 372, 396, 419, 443, 466, 490, 512, 536, 560, 583, 607, 630, 654, 677, 701, 724, 747, 770, 794, 817, 841, 865, 888, 912, 935, 959, 981, 1005, 1028, 1052, 1075,
             1099, 1123, 1146, 1170, 1192, 1216, 1239, 1263, 1286, 1310, 1333, 1357, 1381, 1404, 1427, 1450, 1474, 1497, 1521, 1544, 1568, 1591, 1615, 1639, 1661, 1685, 1708, 1732, 1755, 1779, 1802, 1826, 1849]
    hit0 = 1
    # 攻击间隔 20s打11.608次(根据附灵占比拟合后)
    间隔0 = 20/11.608
    # 发射冰冻针刺,CD5秒
    data1 = [0, 154, 170, 186, 201, 218, 233, 248, 264, 280, 295, 311, 326, 342, 358, 373, 390, 405, 420, 436, 452, 467, 483, 498, 514, 530, 545, 561, 577, 592, 608, 623, 639, 655, 670, 685,
             702, 717, 732, 749, 764, 780, 795, 811, 827, 842, 857, 874, 889, 905, 920, 936, 952, 967, 982, 999, 1014, 1029, 1046, 1061, 1077, 1092, 1108, 1124, 1139, 1154, 1171, 1186, 1201, 1217, 1233]
    hit1 = 10  # 出现5段，原地5段
    # 攻击间隔 20s打3次
    间隔1 = 20/3
    # 发射火球,CD1.5秒
    data2 = [0, 245, 270, 295, 320, 345, 369, 394, 419, 444, 469, 493, 518, 543, 568, 593, 618, 642, 667, 692, 717, 742, 766, 791, 816, 841, 866, 890, 915, 940, 965, 990, 1015, 1039, 1064, 1089, 1114, 1139,
             1163, 1188, 1213, 1238, 1263, 1287, 1312, 1337, 1362, 1387, 1412, 1436, 1461, 1486, 1511, 1536, 1560, 1585, 1610, 1635, 1660, 1684, 1709, 1734, 1759, 1784, 1809, 1833, 1858, 1883, 1908, 1933, 1957]
    hit2 = 1
    # 攻击间隔 20s打11次
    间隔2 = 20/11
    # 召唤冰柱,CD1.5秒
    data3 = [0, 320, 353, 385, 418, 450, 483, 516, 547, 580, 613, 645, 678, 709, 742, 775, 807, 840, 873, 904, 937, 969, 1002, 1035, 1067, 1100, 1132, 1164, 1197, 1229, 1262, 1294, 1326, 1359, 1392, 1424, 1457,
             1488, 1521, 1554, 1586, 1619, 1652, 1683, 1716, 1748, 1781, 1814, 1846, 1878, 1911, 1943, 1976, 2008, 2041, 2073, 2105, 2138, 2171, 2203, 2236, 2267, 2300, 2333, 2365, 2398, 2431, 2462, 2495, 2527, 2560]
    hit3 = 1
    # 攻击间隔 20s打9次
    间隔3 = 20/9
    # 陨石冲击攻击力
    data_f0 = [0, 924, 1018, 1112, 1206, 1299, 1393, 1487, 1581, 1674, 1768, 1862, 1956, 2050, 2143, 2237, 2330, 2424, 2519, 2612, 2706, 2799, 2893, 2987, 3081, 3175, 3268, 3362, 3455, 3550, 3644, 3737, 3831, 3924, 4019,
               4113, 4206, 4300, 4393, 4487, 4582, 4675, 4769, 4862, 4956, 5049, 5144, 5238, 5331, 5425, 5518, 5612, 5707, 5800, 5894, 5987, 6081, 6175, 6269, 6363, 6456, 6550, 6644, 6738, 6832, 6925, 7019, 7112, 7207, 7300, 7394]
    hit_f0 = 1
    # 陨石冲击爆炸攻击力
    data_f1 = [0, 3697, 4072, 4447, 4822, 5197, 5573, 5947, 6322, 6697, 7072, 7448, 7823, 8197, 8572, 8949, 9323, 9698, 10073, 10447, 10823, 11199, 11573, 11948, 12323, 12698, 13073, 13449, 13824, 14198, 14574, 14949, 15323, 15699, 16074, 16448,
               16824, 17199, 17573, 17950, 18324, 18698, 19074, 19450, 19826, 20200, 20574, 20949, 21325, 21700, 22076, 22450, 22825, 23201, 23575, 23950, 24326, 24700, 25075, 25450, 25826, 26200, 26575, 26951, 27325, 27700, 28077, 28451, 28825, 29201, 29575]
    hit_f1 = 1

    是否有护石 = 1

    # 护石描述完全有误，该部分为拟合出的数据
    def 装备护石(self, char):
        self.hit_f0 = 10
        self.hit_f1 = 10
        self.power_f0 = 1.179*(-3.57971494862447*0.14)
        self.power_f1 = 1.179*(1.93072588664236*0.14)
        pass


class 技能13(附灵主动):
    名称 = '精灵召唤：伊伽贝拉'
    所在等级 = 40
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 30
    # 召唤CD
    CD2 = 20
    TP上限 = 5
    TP成长 = 0.1
    MP = [360, 3024]
    MP2 = ["todo"]

    无色消耗 = 1

    # 元素之触,CD0.6秒
    data0 = [0, 118, 129, 141, 153, 165, 177, 189, 201, 213, 224, 236, 248, 260, 272, 284, 296, 307, 319, 331, 343, 355, 367, 379, 391, 402, 414, 426, 438, 450, 462, 474, 485, 497, 509,
             521, 533, 545, 557, 568, 580, 592, 604, 616, 628, 640, 652, 663, 675, 687, 699, 711, 723, 735, 746, 758, 770, 782, 794, 806, 818, 830, 841, 853, 865, 877, 889, 901, 913, 924, 936]
    hit0 = 1
    # 攻击间隔 20s打10.1次
    间隔0 = 20/10.1
    # 波刃攻击,CD3.1秒
    data1 = [0, 269, 296, 323, 351, 378, 405, 432, 460, 487, 514, 542, 569, 596, 624, 651, 678, 705, 733, 759, 786, 814, 841, 868, 895, 923, 950, 977, 1005, 1032, 1059, 1087, 1114, 1141, 1168, 1196, 1223,
             1250, 1278, 1305, 1331, 1358, 1386, 1413, 1440, 1468, 1495, 1522, 1550, 1577, 1604, 1631, 1659, 1686, 1713, 1741, 1768, 1795, 1823, 1850, 1876, 1903, 1931, 1958, 1985, 2013, 2040, 2067, 2094, 2122, 2149]
    hit1 = 2
    # 攻击间隔 20s打5次
    间隔1 = 20/5
    # 闪电,CD5秒
    data2 = [0, 371, 410, 447, 485, 522, 560, 597, 636, 673, 711, 748, 786, 823, 862, 899, 937, 974, 1012, 1049, 1088, 1125, 1163, 1200, 1238, 1275, 1314, 1351, 1389, 1426, 1464, 1502, 1540, 1577, 1615, 1652, 1690,
             1728, 1766, 1803, 1841, 1878, 1916, 1954, 1992, 2029, 2067, 2104, 2143, 2180, 2218, 2255, 2293, 2330, 2369, 2406, 2444, 2481, 2519, 2556, 2595, 2632, 2670, 2707, 2745, 2782, 2821, 2858, 2896, 2933, 2971]
    hit2 = 3
    # 攻击间隔 20s打3.5次
    间隔2 = 20/3.5
    # 激光,CD9.3秒
    data3 = [0, 906, 999, 1091, 1183, 1274, 1366, 1459, 1551, 1642, 1734, 1827, 1919, 2010, 2102, 2194, 2287, 2378, 2470, 2562, 2654, 2746, 2838, 2930, 3022, 3113, 3206, 3298, 3390, 3481, 3574, 3666, 3758, 3849, 3941,
             4034, 4126, 4217, 4309, 4401, 4494, 4585, 4677, 4769, 4860, 4953, 5045, 5137, 5228, 5320, 5413, 5505, 5597, 5688, 5781, 5873, 5965, 6056, 6148, 6241, 6333, 6424, 6516, 6608, 6701, 6792, 6884, 6976, 7067, 7160, 7252]
    hit3 = 4
    # 攻击间隔 20s打2次
    间隔3 = 20/2
    # 超高密度镭射光[附灵]
    data_f0 = [0, 780, 859, 938, 1018, 1096, 1176, 1255, 1333, 1413, 1492, 1571, 1650, 1730, 1808, 1888, 1967, 2045, 2125, 2204, 2283, 2362, 2442, 2520, 2600, 2679, 2757, 2837, 2916, 2995, 3074, 3154, 3232, 3311, 3391,
               3469, 3549, 3628, 3707, 3786, 3865, 3944, 4023, 4103, 4181, 4261, 4340, 4418, 4498, 4577, 4656, 4735, 4815, 4893, 4973, 5052, 5130, 5210, 5289, 5368, 5447, 5527, 5605, 5685, 5764, 5842, 5922, 6001, 6080, 6159, 6239]
    hit_f0 = 8

    关联技能 = ["精灵召唤：冰影阿奎利斯", "精灵召唤：极光格雷林", "精灵召唤：亡魂默克尔", "精灵召唤：火焰赫瑞克"]

    关联技能1 = ["精灵召唤：伊伽贝拉", "至高精灵王"]

    def 加成倍率(self, 武器类型):
        if self.等级 > 0:
            return 1.15
        else:
            return 1

    def 加成倍率1(self, 武器类型):
        # 精灵数量影响
        if self.等级 > 0:
            return 1.3
        else:
            return 1

    是否有护石 = 1

    def 装备护石(self, char):
        # 召唤两个
        self.power0 = self.power1 = self.power2 = self.power3 = 1.19 * 0.51
        # 由于第二个精灵王不会受到附灵和95的干扰，所以20s内能打出的技能数上升
        self.间隔0 = 20/(10.1+12.2)
        self.间隔1 = 20/(5+4.8)
        self.间隔2 = 20/(3.5+3.3)
        self.间隔3 = 20/(2+2)
        self.关联技能 = ["精灵召唤：冰影阿奎利斯", "精灵召唤：极光格雷林",
                     "精灵召唤：亡魂默克尔", "精灵召唤：火焰赫瑞克", "精灵召唤：伊伽贝拉"]


class 技能14(主动技能):
    名称 = "束缚印记"
    所在等级 = 45
    等级上限 = 11
    学习间隔 = 1
    等级精通 = 1
    CD = 25
    MP = [250, 2500]
    无色消耗 = 1
    data0 = [0, 17394, 19158, 20924, 22688, 24452,
             26217, 27982, 29747, 31510, 33275, 35040]
    hit0 = 1

    国服特色 = max(data0[1], 18253)/data0[1]


class 技能15(附灵主动):
    名称 = '契约召唤：牛头王库鲁塔'
    所在等级 = 45
    等级上限 = 70
    等级精通 = 60
    学习间隔 = 2
    # 附灵CD
    CD = 40
    # 召唤CD
    CD2 = 10
    TP上限 = 5
    TP成长 = 0.1
    MP = [420, 3528]
    MP2 = ["todo"]

    无色消耗 = 2

    是否有护石 = 1

    # 横劈,CD1秒
    data0 = [0, 567, 625, 682, 740, 797, 855, 913, 969, 1027, 1084, 1142, 1200, 1257, 1315, 1372, 1430, 1488, 1544, 1602, 1659, 1717, 1775, 1832, 1890, 1947, 2005, 2062, 2119, 2177, 2234, 2292, 2350, 2407, 2465, 2522,
             2579, 2637, 2694, 2752, 2809, 2867, 2925, 2982, 3040, 3096, 3154, 3212, 3269, 3327, 3384, 3442, 3500, 3557, 3615, 3671, 3729, 3787, 3844, 3902, 3959, 4017, 4075, 4132, 4189, 4246, 4304, 4362, 4419, 4477, 4534]
    hit0 = 1
    # 攻击间隔 20s打9.5次
    间隔0 = 20/9.5
    # 愤怒突进,CD2秒
    data1 = [0, 916, 1009, 1102, 1195, 1288, 1380, 1473, 1566, 1659, 1752, 1845, 1938, 2031, 2124, 2217, 2310, 2402, 2495, 2588, 2680, 2773, 2866, 2959, 3052, 3145, 3237, 3330, 3423, 3516, 3609, 3702, 3795, 3888, 3981,
             4074, 4167, 4259, 4352, 4445, 4538, 4631, 4724, 4817, 4910, 5003, 5096, 5188, 5281, 5374, 5467, 5560, 5653, 5746, 5839, 5932, 6024, 6116, 6209, 6302, 6395, 6488, 6581, 6674, 6767, 6860, 6953, 7045, 7138, 7231, 7324]
    hit1 = 1
    # 攻击间隔 20s打6次
    间隔1 = 20/6
    # 咆哮,CD3秒
    data2 = [0, 1803, 1987, 2170, 2352, 2536, 2718, 2901, 3084, 3267, 3450, 3633, 3816, 3999, 4182, 4364, 4548, 4731, 4913, 5097, 5279, 5463, 5645, 5828, 6012, 6194, 6377, 6560, 6743, 6925, 7109, 7291, 7475, 7658, 7840, 8024, 8206,
             8389, 8572, 8755, 8939, 9121, 9304, 9487, 9670, 9852, 10036, 10218, 10402, 10585, 10767, 10951, 11133, 11316, 11499, 11682, 11865, 12048, 12231, 12414, 12597, 12779, 12963, 13146, 13328, 13512, 13694, 13878, 14060, 14243, 14425]
    hit2 = 1
    # 攻击间隔 20s打6次
    间隔2 = 20/6
    # 狂暴愤怒[附灵]
    # 狂暴愤怒横劈
    data_f0 = [0, 2205, 2428, 2652, 2875, 3099, 3322, 3546, 3770, 3993, 4216, 4440, 4664, 4887, 5111, 5334, 5558, 5781, 6005, 6229, 6452, 6676, 6899, 7123, 7346, 7570, 7794, 8017, 8241, 8464, 8688, 8911, 9135, 9358, 9582, 9806, 10029, 10253,
               10476, 10700, 10923, 11148, 11370, 11595, 11819, 12042, 12266, 12489, 12713, 12936, 13160, 13384, 13607, 13831, 14054, 14278, 14501, 14725, 14948, 15172, 15396, 15619, 15843, 16066, 16290, 16513, 16737, 16961, 17184, 17408, 17631]
    hit_f0 = 1
    # 狂暴愤怒下劈
    data_f1 = [0, 3086, 3398, 3712, 4024, 4337, 4651, 4963, 5277, 5590, 5902, 6216, 6528, 6842, 7155, 7467, 7781, 8094, 8407, 8720, 9033, 9346, 9659, 9971, 10285, 10598, 10911, 11224, 11537, 11850, 12163, 12477, 12789, 13102, 13415, 13728, 14041,
               14354, 14667, 14981, 15293, 15607, 15920, 16232, 16546, 16858, 17171, 17485, 17797, 18110, 18424, 18736, 19050, 19362, 19676, 19989, 20301, 20614, 20928, 21240, 21554, 21867, 22179, 22493, 22805, 23119, 23432, 23745, 24058, 24371, 24683]
    hit_f1 = 1
    # 狂暴愤怒冲击波
    data_f2 = [0, 3968, 4370, 4772, 5174, 5576, 5980, 6382, 6784, 7186, 7589, 7992, 8394, 8796, 9199, 9601, 10004, 10406, 10809, 11211, 11613, 12016, 12419, 12821, 13223, 13625, 14029, 14431, 14833, 15235, 15638, 16041, 16443, 16845, 17249, 17651,
               18053, 18455, 18858, 19261, 19663, 20065, 20468, 20870, 21273, 21675, 22078, 22480, 22882, 23284, 23687, 24090, 24492, 24894, 25297, 25700, 26102, 26504, 26906, 27310, 27712, 28114, 28516, 28919, 29322, 29724, 30126, 30530, 30932, 31334, 31736]
    hit_f2 = 1

    def 装备护石(self, char):
        self.倍率 *= 1.31
        self.CDR *= 0.9


class 技能16(被动技能):
    名称 = '灵魂支配'
    所在等级 = 48
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.105+0.015*self.等级, 3)


class 技能17(主动技能):
    名称 = '契约召唤：征服者卡西利亚斯'
    所在等级 = 50
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 5
    CD = 145
    MP = [1200, 10080]

    无色消耗 = 7

    形态 = []

    输出时间 = 10

    # 夜冥流 不动剑 CD1秒
    data0 = [0, 396, 488, 579, 671, 763, 854, 946, 1038, 1129, 1221, 1312, 1405, 1497, 1588, 1680, 1772, 1863, 1955, 2047, 2138, 2230, 2322, 2413, 2505, 2597,
             2688, 2780, 2872, 2963, 3055, 3146, 3239, 3331, 3422, 3514, 3606, 3697, 3789, 3881, 3972, 4064, 4156, 4247, 4339, 4431, 4522, 4614, 4705, 4797, 4889]
    hit0 = 1
    # 攻击间隔 20s打16.2次
    间隔0 = 20/16.2
    # 夜冥流 疾风剑 CD1.5秒
    data1 = [0, 890, 1096, 1303, 1509, 1715, 1922, 2129, 2335, 2541, 2747, 2953, 3160, 3366, 3573, 3779, 3985, 4192, 4398, 4604, 4810, 5016, 5223, 5430, 5636, 5842,
             6049, 6255, 6461, 6667, 6873, 7079, 7287, 7493, 7699, 7905, 8112, 8318, 8524, 8730, 8937, 9144, 9350, 9556, 9762, 9968, 10175, 10381, 10587, 10794, 11001]
    hit1 = 1
    # 攻击间隔 20s打10.2次
    间隔1 = 20/10.2
    # 夜冥流 不动剑 CD2秒
    data2 = [0, 1898, 2339, 2779, 3220, 3659, 4100, 4540, 4979, 5420, 5860, 6301, 6740, 7181, 7621, 8061, 8501, 8941, 9382, 9821, 10262, 10702, 11142, 11582, 12023, 12462, 12902,
             13343, 13783, 14223, 14663, 15104, 15543, 15984, 16424, 16864, 17304, 17744, 18185, 18624, 19065, 19505, 19946, 20385, 20825, 21266, 21705, 22146, 22586, 23027, 23466]
    hit2 = 1
    # 攻击间隔 20s打8.1次
    间隔2 = 20/8.1

    def 基础百分比(self, 类型, 等级):
        if 类型 == '直伤':
            name = ''
        else:
            name = 类型
        百分比 = 0.0
        for i in range(0, 10):
            data = getattr(self, '{}data{}'.format(name, i), [])
            if 等级 < len(data) and 等级 > 0:
                hit = getattr(self, '{}hit{}'.format(name, i), 1)
                power = getattr(self, '{}power{}'.format(name, i), 1)
                count = getattr(self, '{}power_f{}'.format(name, i), 1)
                百分比 += data[等级] * hit * power * count
        return 百分比*self.国服特色

    def 等效百分比(self, **argv):
        for i in range(0, 10):
            setattr(self, 'count{}'.format(i), 1)
            if getattr(self, '间隔{}'.format(i), 0) > 0:
                setattr(self, 'hit{}'.format(i), self.输出时间 /
                        getattr(self, '间隔{}'.format(i), 0))
        return super().等效百分比(**argv)


class 技能18(主动技能):
    名称 = '必杀剑·千鬼杀'
    所在等级 = 50
    等级上限 = 1
    等级精通 = 1
    学习间隔 = 5
    CD = 145
    # 待定,走的是觉醒的MP还是自身的MP
    MP = [600, 600]

    无色消耗 = 7

    data0 = [0, 9610, 11837, 14066, 16294, 18523, 23057, 25533, 28008, 30485, 32960, 35436, 37912, 40388, 42864, 45340, 47815, 50292, 52767, 55243, 57719, 60195, 62670, 65147, 67623, 70099,
             72574, 75051, 77526, 80002, 82479, 84954, 87429, 89906, 92382, 94857, 97334, 99809, 102285, 104761, 107237, 109713, 112189, 114664, 117141, 119616, 122093, 124568, 127044, 129520, 131996]
    hit0 = 5
    data1 = [0, 5766, 7102, 8440, 9776, 11114, 13834, 15320, 16805, 18291, 19777, 21261, 22747, 24233, 25718, 27204, 28689, 30175, 31660, 33146, 34632, 36116, 37602, 39088, 40574, 42059,
             43545, 45030, 46516, 48001, 49487, 50973, 52457, 53943, 55429, 56914, 58400, 59886, 61371, 62857, 64342, 65828, 67313, 68798, 70284, 71769, 73255, 74741, 76226, 77712, 79198]
    hit1 = 1


class 技能19(主动技能):
    名称 = '精灵召唤：融合精灵海伊伦'
    所在等级 = 60
    等级上限 = 11
    等级精通 = 1
    学习间隔 = 3

    是否有伤害 = 0

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 > 0:
            return 1.05 + 0.005 * self.等级
        else:
            return 1.0


class 技能20(主动技能):
    名称 = '咒令：愤怒咆哮'
    所在等级 = 70
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2
    CD = 50
    TP上限 = 5
    TP成长 = 0.1
    MP = [800, 1680]

    无色消耗 = 2
    是否有护石 = 1

    # 下劈
    data0 = [0, 5024, 5534, 6044, 6555, 7063, 7574, 8083, 8592, 9102, 9611, 10120, 10632, 11141, 11651, 12160, 12669, 13180, 13688, 14198, 14709, 15219, 15728, 16236, 16747, 17256,
             17766, 18276, 18786, 19294, 19806, 20315, 20824, 21334, 21844, 22354, 22862, 23371, 23883, 24392, 24902, 25412, 25920, 26431, 26939, 27450, 27959, 28467, 28980, 29488, 29998]
    hit0 = 4
    # 最后一击
    data1 = [0, 13398, 14755, 16116, 17476, 18833, 20194, 21554, 22911, 24270, 25629, 26989, 28348, 29706, 31066, 32425, 33785, 35143, 36502, 37861, 39221, 40580, 41938, 43298, 44657,
             46015, 47375, 48734, 50093, 51454, 52810, 54170, 55530, 56889, 58248, 59605, 60966, 62326, 63684, 65043, 66402, 67761, 69121, 70480, 71838, 73197, 74557, 75916, 77274, 78634, 79994]
    hit1 = 1

    def 装备护石(self, char):
        self.CDR *= 0.9
        # 待确定
        self.hit0 = 0
        self.power1 = 2.81 + 0.2
        pass


class 技能21(主动技能):
    名称 = '狂化黑月'
    所在等级 = 75
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2

    无色消耗 = 3
    MP = [444, 1422]
    CD = 40
    # 持续15秒

    # 施放时蚀爆攻击力
    data0 = [0, 6411, 7060, 7711, 8361, 9012, 9663, 10312, 10963, 11613, 12263, 12913, 13564, 14214, 14865, 15515, 16165, 16816, 17465, 18117, 18766, 19418, 20067, 20717, 21367, 22017,
             22667, 23318, 23969, 24620, 25270, 25919, 26570, 27219, 27870, 28520, 29170, 29821, 30472, 31122, 31772, 32422, 33073, 33723, 34372, 35024, 35674, 36324, 36974, 37624, 38276]
    hit0 = 1
    # 月蚀长矛攻,CD1.2秒
    data1 = [0, 582, 642, 700, 759, 819, 877, 937, 995, 1055, 1115, 1173, 1233, 1290, 1350, 1410, 1467, 1527, 1585, 1645, 1704, 1763, 1823, 1881, 1941, 2000,
             2059, 2118, 2177, 2237, 2295, 2353, 2412, 2471, 2530, 2590, 2649, 2708, 2767, 2826, 2886, 2945, 3004, 3062, 3121, 3181, 3239, 3299, 3359, 3416, 3476]
    hit1 = 3*12
    # 月空破碎,CD1.2秒
    data2 = [0, 2504, 2758, 3013, 3268, 3522, 3775, 4029, 4283, 4537, 4792, 5045, 5299, 5553, 5808, 6063, 6317, 6570, 6824, 7078, 7333, 7587, 7840, 8094, 8348, 8604, 8858,
             9111, 9365, 9619, 9874, 10128, 10382, 10635, 10889, 11143, 11399, 11653, 11906, 12160, 12414, 12669, 12923, 13176, 13430, 13684, 13939, 14194, 14448, 14701, 14955]
    hit2 = 1*12
    # 月光追击,CD3.5秒
    data3 = [0, 2609, 2873, 3139, 3403, 3668, 3932, 4195, 4461, 4725, 4989, 5254, 5518, 5781, 6047, 6310, 6578, 6843, 7106, 7372, 7635, 7899, 8164, 8428, 8692, 8958, 9222,
             9487, 9751, 10015, 10282, 10545, 10810, 11075, 11339, 11602, 11868, 12132, 12395, 12661, 12925, 13191, 13455, 13719, 13984, 14248, 14511, 14778, 15043, 15308, 15572]
    hit3 = 5*4

    是否有护石 = 1

    def 装备护石(self, char):
        self.CDR *= 0.88
        # 待确定
        self.data4 = [int(i*2.02) for i in self.data3]
        self.hit4 = 5*1
        pass


class 技能22(被动技能):
    名称 = '蚀月附灵'
    所在等级 = 75
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22+0.02*self.等级, 3)


class 技能23(主动技能):
    名称 = '传说召唤：月蚀之影'
    所在等级 = 80
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2

    无色消耗 = 5
    MP = [800, 6000]
    CD = 43

    data0 = [0, 3765, 4146, 4531, 4912, 5290, 5676, 6054, 6439, 6818, 7201, 7581, 7965, 8349, 8727, 9111, 9493, 9872, 10254, 10638, 11019, 11404, 11782, 12164, 12547, 12929,
             13311, 13692, 14074, 14457, 14840, 15221, 15603, 15981, 16365, 16745, 17131, 17512, 17891, 18276, 18654, 19035, 19417, 19800, 20184, 20565, 20947, 21330, 21710, 22093, 22476]
    hit0 = 15

    国服特色 = max(data0[1], 4856)/data0[1]

    是否有护石 = 1

    def 装备护石(self, char):
        self.hit0 = 30
        self.power0 = 0.66
        pass


class 技能24(附灵主动):
    名称 = '传说召唤：逆月者拉莫斯'
    所在等级 = 85
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 5
    无色消耗 = 5
    MP = [800, 6000]
    CD = 10
    CD2 = 180
    # 召唤兽数量加成
    倍率 = 1.15

    # 普通攻击第1击,CD3秒
    data0 = [0, 1236, 1522, 1810, 2096, 2383, 2669, 2956, 3242, 3529, 3816, 4102, 4389, 4675, 4961, 5248, 5535, 5822, 6108, 6395, 6681, 6967, 7254, 7541, 7828, 8114, 8401,
             8687, 8973, 9261, 9547, 9834, 10120, 10406, 10693, 10979, 11267, 11553, 11840, 12126, 12412, 12699, 12986, 13273, 13559, 13846, 14132, 14418, 14705, 14992, 15279]
    hit0 = 1
    # 攻击间隔 20s打5次
    间隔0 = 20/5

    # 普通攻击第2击,CD3秒
    data1 = [0, 1236, 1522, 1810, 2096, 2383, 2669, 2956, 3242, 3529, 3816, 4102, 4389, 4675, 4961, 5248, 5535, 5822, 6108, 6395, 6681, 6967, 7254, 7541, 7828, 8114, 8401,
             8687, 8973, 9261, 9547, 9834, 10120, 10406, 10693, 10979, 11267, 11553, 11840, 12126, 12412, 12699, 12986, 13273, 13559, 13846, 14132, 14418, 14705, 14992, 15279]
    hit1 = 1
    # 攻击间隔 20s打4次
    间隔1 = 20/4

    # 蚀击
    # 突进
    sj0 = [0, 330, 406, 482, 559, 635, 712, 788, 865, 941, 1017, 1093, 1171, 1247, 1323, 1399, 1476, 1552, 1629, 1705, 1782, 1858, 1934, 2011, 2088, 2164,
           2240, 2316, 2393, 2470, 2546, 2622, 2699, 2775, 2851, 2928, 3005, 3081, 3157, 3233, 3309, 3387, 3463, 3539, 3615, 3692, 3769, 3845, 3921, 3998, 4074]
    # 第一击
    sj1 = [0, 577, 710, 844, 978, 1112, 1246, 1380, 1514, 1647, 1781, 1914, 2048, 2181, 2315, 2449, 2583, 2716, 2850, 2984, 3118, 3252, 3386, 3520, 3653, 3786,
           3920, 4054, 4187, 4321, 4455, 4589, 4723, 4856, 4990, 5124, 5258, 5392, 5526, 5658, 5792, 5926, 6060, 6194, 6327, 6461, 6595, 6729, 6862, 6996, 7130]
    # 第二击
    sj2 = [0, 742, 914, 1086, 1258, 1430, 1602, 1774, 1946, 2117, 2289, 2461, 2633, 2805, 2977, 3149, 3321, 3492, 3664, 3837, 4009, 4181, 4353, 4525, 4697,
           4868, 5040, 5212, 5384, 5556, 5728, 5900, 6072, 6243, 6415, 6587, 6759, 6931, 7104, 7276, 7448, 7620, 7792, 7964, 8135, 8307, 8479, 8651, 8823, 8995, 9167]
    # 攻击间隔 20s打5.7次
    间隔2 = 20/5.7

    # 蚀握
    # 突进
    sw0 = [0, 412, 507, 603, 699, 794, 890, 986, 1080, 1176, 1272, 1368, 1463, 1558, 1654, 1749, 1845, 1941, 2036, 2131, 2227, 2323, 2418, 2513, 2609, 2705,
           2800, 2896, 2991, 3086, 3182, 3278, 3374, 3468, 3564, 3660, 3755, 3851, 3947, 4042, 4137, 4233, 4329, 4424, 4519, 4615, 4711, 4806, 4902, 4997, 5093]
    # 抓取
    sw1 = [0, 1442, 1776, 2110, 2445, 2779, 3113, 3448, 3782, 4116, 4451, 4785, 5119, 5454, 5788, 6122, 6457, 6791, 7125, 7460, 7795, 8128, 8463, 8797, 9131, 9466, 9800,
           10135, 10469, 10803, 11137, 11472, 11807, 12141, 12476, 12809, 13143, 13477, 13813, 14147, 14482, 14816, 15149, 15483, 15819, 16153, 16487, 16822, 17156, 17489, 17825]
    # 攻击间隔 20s打3.1次
    间隔2 = 20/3.1

    # 蚀旋[附灵]
    data_f0 = [0, 3433, 4229, 5025, 5821, 6617, 7413, 8209, 9005, 9801, 10597, 11393, 12189, 12985, 13781, 14577, 15373, 16169, 16966, 17762, 18558, 19354, 20150, 20946, 21742, 22538,
               23334, 24130, 24926, 25722, 26518, 27314, 28110, 28906, 29702, 30499, 31295, 32091, 32887, 33683, 34479, 35275, 36070, 36866, 37662, 38458, 39254, 40050, 40846, 41642, 42438]
    hit_f0 = 3

    def __init__(self) -> None:
        # 蚀击
        self.data2 = [(self.sj0[i]+self.sj1[i]+self.sj2[i])
                      for i in range(0, 51)]
        self.data3 = [(self.sw0[i]*4 + self.sw1[i]) for i in range(0, 51)]
        super().__init__()


class 技能25(主动技能):
    名称 = '咒令：逆月之蚀'
    所在等级 = 85
    等级上限 = 1
    等级精通 = 1
    学习间隔 = 5

    无色消耗 = 5
    MP = [800, 6000]
    CD = 180
    # 召唤兽数量加成
    倍率 = 1.15

    # 蚀下落
    data0 = [0, 8239, 10149, 12060, 13971, 15881, 17791, 19702, 21612, 23522, 25434, 27344, 29254, 31165, 33075, 34985, 36896, 38807, 40717, 42628, 44538, 46448, 48359, 50269, 52179,
             54091, 56001, 57911, 59822, 61732, 63643, 65553, 67464, 69374, 71285, 73195, 75106, 77016, 78926, 80838, 82748, 84658, 86569, 88479, 90389, 92300, 94210, 96121, 98032, 99942, 101852]
    hit0 = 1
    # 蚀啃噬
    data1 = [0, 3295, 4060, 4824, 5588, 6352, 7117, 7881, 8644, 9409, 10173, 10938, 11701, 12466, 13230, 13995, 14758, 15523, 16287, 17050, 17815, 18579, 19344, 20107, 20872, 21636,
             22401, 23164, 23929, 24693, 25458, 26221, 26985, 27750, 28514, 29278, 30042, 30807, 31570, 32335, 33099, 33864, 34627, 35391, 36156, 36920, 37684, 38448, 39213, 39977, 40741]
    hit1 = 5
    #  蚀下批
    data2 = [0, 4708, 5800, 6891, 7983, 9075, 10167, 11258, 12350, 13442, 14534, 15625, 16716, 17808, 18900, 19992, 21083, 22175, 23266, 24359, 25450, 26542, 27633, 28726, 29817, 30909,
             32000, 33093, 34184, 35276, 36367, 37459, 38551, 39643, 40734, 41826, 42917, 44009, 45101, 46192, 47284, 48376, 49468, 50559, 51651, 52742, 53835, 54926, 56018, 57109, 58202]
    hit2 = 7
    # 蚀回归
    data3 = [0, 24717, 30448, 36180, 41911, 47642, 53374, 59105, 64837, 70568, 76300, 82031, 87763, 93494, 99225, 104957, 110688, 116420, 122151, 127882, 133614, 139345, 145077, 150808, 156539, 162271,
             168002, 173734, 179465, 185196, 190929, 196659, 202391, 208122, 213853, 219586, 225317, 231048, 236779, 242512, 248243, 253974, 259706, 265436, 271169, 276900, 282631, 288363, 294094, 299826, 305557]
    hit3 = 1


class 技能26(主动技能):
    名称 = '至高精灵王'
    所在等级 = 95
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 2

    无色消耗 = 7
    MP = [960, 2016]
    CD = 60

    data0 = [0, 3772, 4153, 4537, 4918, 5302, 5684, 6065, 6449, 6830, 7214, 7595, 7978, 8362, 8743, 9127, 9508, 9890, 10273, 10655, 11039, 11420, 11802, 12186, 12568, 12951,
             13333, 13716, 14098, 14480, 14863, 15245, 15627, 16010, 16395, 16777, 17158, 17540, 17923, 18304, 18688, 19070, 19452, 19835, 20219, 20602, 20984, 21367, 21749, 22131, 22514]
    hit0 = 9
    data1 = [0, 50900, 56063, 61227, 66391, 71555, 76716, 81882, 87046, 92207, 97371, 102536, 107699, 112863, 118025, 123190, 128354, 133516, 138680, 143843, 149008, 154171, 159333, 164497, 169662, 174824,
             179988, 185152, 190316, 195479, 200643, 205806, 210971, 216134, 221297, 226461, 231626, 236788, 241951, 247114, 252279, 257442, 262605, 267769, 272934, 278096, 283260, 288424, 293587, 298751, 303915]
    hit1 = 1


class 技能27(被动技能):
    名称 = '逆月'
    所在等级 = 95
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 3

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18+0.02*self.等级, 3)


class 技能28(主动技能):
    名称 = '魔月·德拉里昂'
    所在等级 = 100
    等级上限 = 50
    等级精通 = 40
    学习间隔 = 5

    无色消耗 = 15
    MP = [3222, 10311]
    CD = 290

    data0 = [0, 56626, 69757, 82888, 96018, 109149, 122279, 135410, 148540, 161669, 174800, 187931, 201060, 214191, 227322, 240453, 253582, 266713, 279843, 292973, 306104, 319236, 332367, 345497, 358628, 371757,
             384888, 398016, 411147, 424278, 437409, 450539, 463670, 476801, 489929, 503060, 516191, 529322, 542452, 555582, 568713, 581843, 594972, 608102, 621234, 634365, 647495, 660626, 673757, 686887, 700018]
    hit0 = 1
    data1 = [0, 132127, 162764, 193402, 224038, 254678, 285316, 315952, 346590, 377228, 407866, 438502, 469139, 499779, 530416, 561053, 591691, 622329, 652966, 683603, 714241, 744879, 775516, 806154, 836791, 867429, 898069,
             928705, 959343, 989980, 1020618, 1051255, 1081892, 1112530, 1143170, 1173804, 1204444, 1235081, 1265718, 1296355, 1326994, 1357632, 1388269, 1418905, 1449545, 1480182, 1510821, 1541457, 1572095, 1602732, 1633370]
    hit1 = 1
    data2 = [0, 188751, 232519, 276289, 320055, 363824, 407590, 451360, 495127, 538894, 582664, 626433, 670200, 713968, 757736, 801503, 845273, 889040, 932808, 976576, 1020344, 1064111, 1107881, 1151648, 1195417, 1239185,
             1282952, 1326720, 1370488, 1414255, 1458024, 1501793, 1545560, 1589329, 1633098, 1676864, 1720631, 1764400, 1808169, 1851937, 1895704, 1939473, 1983241, 2027008, 2070778, 2114545, 2158313, 2202080, 2245850, 2289617, 2333385]
    hit2 = 1


class 技能29(主动技能):
    名称 = '魔力印记'
    所在等级 = 25
    等级上限 = 11
    等级精通 = 1
    学习间隔 = 3

    无色消耗 = 0
    MP = [48, 83]
    CD = 1

    data0 = [0, 868, 1008, 1141, 1283, 1419,
             1561, 1699, 1832, 1974, 2107, 2252]
    hit0 = 30


class classChange(Character):
    def __init__(self, equVersion=""):
        self.实际名称 = 'summoner'
        self.名称 = '知源·召唤师'
        self.角色 = '魔法师(女)'
        self.角色类型 = '输出'
        self.职业 = '召唤师'
        # 用来筛CP武器的
        self.转职 = '召唤师'
        self.武器选项 = ['法杖', '魔杖']
        self.输出类型选项 = ['魔法百分比']
        self.防具精通属性 = ['智力']
        self.类型 = '魔法百分比'
        self.武器类型 = '法杖'
        self.防具类型 = '布甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 1.790

        super().__init__(equVersion)

    def set_skill_info(self, info, rune_except=[], clothes_pants=[]):
        super().set_skill_info(info, clothes_pants=['远古记忆'])

    def 职业特殊计算(self):
        # 等级绑定
        千鬼杀 = self.get_skill_by_name('必杀剑·千鬼杀')
        千鬼杀.等级上限 = 50
        千鬼杀.等级 = self.get_skill_by_name('契约召唤：征服者卡西利亚斯').等级

        逆月之蚀 = self.get_skill_by_name('咒令：逆月之蚀')
        逆月之蚀.等级上限 = 50
        逆月之蚀.等级 = self.get_skill_by_name('传说召唤：逆月者拉莫斯').等级

    def set_individuation(self, info):
        temp = ["契约召唤：弗利特", "契约召唤：桑德尔", "精灵召唤：冰影阿奎利斯", "精灵召唤：极光格雷林", "精灵召唤：亡魂默克尔",
                "契约召唤：袄索", "契约召唤：路易丝", "精灵召唤：伊伽贝拉", "契约召唤：牛头王库鲁塔", "契约召唤：征服者卡西利亚斯", "传说召唤：逆月者拉莫斯","精灵召唤：火焰赫瑞克"]
        info['char_optiopns'] = []
        for i in temp:
            info['char_optiopns'].append({
                "name": '[{}]'.format(i.split("：")[1]),
                "option": ["单次输出 {} 秒".format(str(i)) for i in range(1, 61)]
            })
        info['char_optiopns'].append({
            "name": '[魔力印记]',
            "option": ["单次输出 {} 秒".format(str(i)) for i in range(1, 30)]
        })

    def 职业特殊设置(self):
        temp = ["契约召唤：弗利特", "契约召唤：桑德尔", "精灵召唤：冰影阿奎利斯", "精灵召唤：极光格雷林", "精灵召唤：亡魂默克尔",
                "契约召唤：袄索", "契约召唤：路易丝", "精灵召唤：伊伽贝拉", "契约召唤：牛头王库鲁塔", "契约召唤：征服者卡西利亚斯", "传说召唤：逆月者拉莫斯","精灵召唤：火焰赫瑞克"]
        for index in range(0, len(temp)):
            self.get_skill_by_name(
                temp[index]).输出时间 = self.get_individuation(index) + 1
        self.get_skill_by_name(
            "魔力印记").hit0 = self.get_individuation(len(temp)+1) + 1
        pass
